package edu.lingnan.rili.service;

import edu.lingnan.rili.pojo.Awarded;
import com.baomidou.mybatisplus.extension.service.IService;
import edu.lingnan.rili.vo.AwardedVo;
import edu.lingnan.rili.vo.PagingQueryResult;

import java.util.List;
import edu.lingnan.rili.utils.Result;
import edu.lingnan.rili.vo.PagingQuery;
import edu.lingnan.rili.vo.PagingQueryResult;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 陈世杰
 * @since 2022-01-23
 */
public interface AwardedService extends IService<Awarded> {
    /**
     * 这是一个其他比赛公示分页查询的方法
     *
     * @param page 查询的页数（第几页）
     * @param rows 一页显示的信息条数
     * @return
     */
    Result<PagingQueryResult<PagingQuery>> publicityOfOtherCompetitions
    (int page, int rows);

    /**
     * 这是一个其他加分公示分页查询的方法
     * @param page 查询的页数（第几页）
     * @param rows 一页显示的信息条数
     * @return
     */
    Result<PagingQueryResult<PagingQuery>> publicityOfExtraPoints(int page, int rows);

    /**
     * 这是一个其他比赛公示页面的模糊查询
     *
     * @param keywords 关键字
     * @return
     */
    Result<PagingQueryResult<PagingQuery>>
    queryOfOtherCompetitionPublicityKeywords(String keywords, int page, int rows);

    /**
     * 这是一个其他加分公示页面的模糊查询
     *
     * @param keywords 关键字
     * @return
     */
    Result<PagingQueryResult<PagingQuery>> fuzzyQueryOfOtherBonusPublicityPages
    (String keywords, int page, int rows);
    /**
     * @description 查询所有已经公示的加分记录
     * @author xBaozi
     * @date 20:56 2022/3/15
     * @return      返回查询结果集
     **/
    @Deprecated
    public List<Awarded> selectAllAnnounced();

    /**
     * @description 使用vo类实现查找所有已经公示的加分记录，减少字段冗余
     * @author xBaozi
     * @date 17:20 2022/3/20
     **/
    public List<AwardedVo> selectByAnnounced();

    /**
     * @description 分页查询
     * @author xBaozi
     * @date 8:42 2022/4/2
     * @param currentPage   当前页
     * @param pageSize      每页数据条数
     **/
    public PagingQueryResult<AwardedVo> selectByAnnouncedAndPage(int currentPage, int pageSize);

    /**
     * @description 查询所有未审核的其他比赛加分数据
     * @author xBaozi
     * @date 22:54 2022/3/24
     * @return      返回查询结果集
     **/
    public List<AwardedVo> selectAllNotReviewed();

    /**
     * @description 分页查询所有未审核的其他比赛加分数据
     * @author xBaozi
     * @date 17:18 2022/4/4
     **/
    public PagingQueryResult<AwardedVo> selectAllNotReviewedByPage(int currentPage, int pageSize);

    /**
     * @description 审核待审核的加分数据
     * @author xBaozi
     * @date 9:44 2022/3/25
     * @param uploadingId   uploadingId唯一标识
     * @param stateId       审核状态标识
     * @param stateCause    驳回原因
     * @return      操作成功标识
     **/
    public Boolean audit(String uploadingId, String stateId, String stateCause);

}
